<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Unit Test Report</title>
    <meta name="generator" content="HTMLTestRunner 0.9.1"/>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <script type="text/javascript" src="ihrm20201106161239.json" charset="utf-8"></script>
    <link href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdn.bootcss.com/echarts/3.8.5/echarts.common.min.js"></script>
    <!-- <script type="text/javascript" src="js/echarts.common.min.js"></script> -->

    
<style type="text/css" media="screen">
    body        { font-family: Microsoft YaHei,Consolas,arial,sans-serif; font-size: 80%; }
    table       { font-size: 100%; }
    pre         { white-space: pre-wrap;word-wrap: break-word; }

    /* -- heading ---------------------------------------------------------------------- */
    h1 {
        font-size: 16pt;
        color: gray;
    }
    .heading {
        margin-top: 0ex;
        margin-bottom: 1ex;
    }

    .heading .attribute {
        margin-top: 1ex;
        margin-bottom: 0;
    }

    .heading .description {
        margin-top: 2ex;
        margin-bottom: 3ex;
    }

    /* -- css div popup ------------------------------------------------------------------------ */
    a.popup_link {
    }

    a.popup_link:hover {
        color: red;
    }
    .img{
        height: 100%;
        border-collapse: collapse;
        border: 2px solid #777;
    }
    .screenshots {
        z-index: 100;
        position:absolute;
        height: 80%;
        left: 50%;
        top: 50%;
        transform: translate(-50%,-50%);
        display: none;
    }
    .imgyuan{
        height: 20px;
        border-radius: 12px;
        background-color: red;
        padding-left: 13px;
        margin: 0 auto;
        position: relative;
        top: -40px;
        background-color: rgba(1, 150, 0, 0.3);
    }
    .imgyuan font{
        border:1px solid white;
        width:11px; 
        height:11px;
        border-radius:50%;
        margin-right: 9px;
        margin-top: 4px;
        display: block;
        float: left;
        background-color: white;
    }
    .close_shots {
        background-image: url();
        background-size: 22px 22px;
        -moz-background-size: 22px 22px;
        background-repeat: no-repeat;
        position: absolute;
        top: 5px;
        right: 5px;
        height: 22px;
        z-index: 99;
        width: 22px;
    }
    .popup_window {
        display: none;
        position: relative;
        left: 0px;
        top: 0px;
        /*border: solid #627173 1px; */
        padding: 10px;
        /*background-color: #E6E6D6; */
        font-family: "Lucida Console", "Courier New", Courier, monospace;
        text-align: left;
        font-size: 8pt;
        /* width: 500px;*/
    }

    }
    /* -- report ------------------------------------------------------------------------ */
    #show_detail_line {
        margin-top: 3ex;
        margin-bottom: 1ex;
    }
    #result_table {
        width: 99%;
    }
    #header_row {
        font-weight: bold;
        color: #303641;
        background-color: #ebebeb;
    }
    #total_row  { font-weight: bold; }
    .passClass  { background-color: #bdedbc; }
    .failClass  { background-color: #ffefa4; }
    .errorClass { background-color: #ffc9c9; }
    .passCase   { color: #6c6; }
    .failCase   { color: #FF6600; font-weight: bold; }
    .errorCase  { color: #c00; font-weight: bold; }
    .hiddenRow  { display: none; }
    .testcase   { margin-left: 2em; }


    /* -- ending ---------------------------------------------------------------------- */
    #ending {
    }

    #div_base {
                position:absolute;
                top:0%;
                left:5%;
                right:5%;
                width: auto;
                height: auto;
                margin: -15px 0 0 0;
    }
</style>


</head>
<body>
    <script language="javascript" type="text/javascript"><!--
    output_list = Array();

    /* level - 0:Summary; 1:Failed; 2:All */
    console.log(data)
    function showCase(level) {
        trs = document.getElementsByTagName("tr");
        for (var i = 2; i < trs.length; i++) {
            let tr = trs[i];
            var result = tr.getElementsByTagName("td")[0].className
            if (result === "passCase"){
                if (level === 2 || level === 3){
                    tr.className = '';
                } else {
                    tr.className = 'hiddenRow';
                }
            }
            if (result === "failCase"){
                if (level === 1 || level === 3){
                    tr.className = '';
                }else {
                    tr.className = 'hiddenRow';
                }
            }
            if (result === "errorCase"){
                if (level === 4 || level === 3){
                    tr.className = '';
                }else {
                    tr.className = 'hiddenRow';
                }
            }
        }

    }
    function showClassDetail(cid, count) {
        var id_list = Array(count);
        var toHide = 1;
        for (var i = 0; i < count; i++) {
            tid0 = 't' + cid.substr(1) + '.' + (i+1);
            tid = 'f' + tid0;
            tr = document.getElementById(tid);
            if (!tr) {
                tid = 'p' + tid0;
                tr = document.getElementById(tid);
            }
            id_list[i] = tid;
            if (tr.className) {
                toHide = 0;
            }
        }
        for (var i = 0; i < count; i++) {
            tid = id_list[i];
            if (toHide) {
                document.getElementById('div_'+tid).style.display = 'none';
                document.getElementById(tid).className = 'hiddenRow';
            }
            else {
                document.getElementById(tid).className = '';
            }
        }
    }


    function showTestDetail(div_id){
        var details_div = document.getElementById(div_id);
        var displayState = details_div.style.display;
        // alert(displayState)
        if (displayState !== 'block' ) {
            displayState = 'block'
            details_div.style.display = 'block'
        }
        else {
            details_div.style.display = 'none'
        }
    }


    function html_escape(s) {
        s = s.replace(/&/g,'&amp;');
        s = s.replace(/</g,'&lt;');
        s = s.replace(/>/g,'&gt;');
        return s;
    }


    function show_img(obj) {
        var obj1 = obj.nextElementSibling;
        obj1.style.display='block';
        var index = 0;//每张图片的下标，
        var len = obj1.getElementsByTagName('img').length;
        var imgyuan = obj1.getElementsByClassName('imgyuan')[0];
        //var start=setInterval(autoPlay,500);
        obj1.onmouseover=function(){//当鼠标光标停在图片上，则停止轮播
            clearInterval(start);
        }
        obj1.onmouseout=function(){//当鼠标光标停在图片上，则开始轮播
            start=setInterval(autoPlay,1000);
        }    
        for (var i = 0; i < len; i++) {
            var font = document.createElement('font');
            imgyuan.appendChild(font)
        }
        var lis = obj1.getElementsByTagName('font');//得到所有圆圈
        changeImg(0);
        var funny = function (i) {
            lis[i].onmouseover = function () {
                index=i;
                changeImg(i)
            }
        }
        for (var i = 0; i < lis.length; i++) {
            funny(i);
        }

        function autoPlay(){
            if(index>len-1){
                index=0;
                clearInterval(start); //运行一轮后停止
            }
            changeImg(index++);
        }
        imgyuan.style.width= 25*len +"px";
        //对应圆圈和图片同步
        function changeImg(index) {
            var list = obj1.getElementsByTagName('img');
            var list1 = obj1.getElementsByTagName('font');
            for (i = 0; i < list.length; i++) {
                list[i].style.display = 'none';
                list1[i].style.backgroundColor = 'white';
            }
            list[index].style.display = 'block';
            list1[index].style.backgroundColor = 'blue';
        }

    }
    function hide_img(obj){
        obj.parentElement.style.display = "none";
        obj.parentElement.getElementsByClassName('imgyuan')[0].innerHTML = "";
    }
    window.onload=function (){
        var objSelectet = document.getElementById("testTime");
        for(var i = data.length-1 ; i >=0 ; i--){
            var objOption = document.createElement("OPTION");
            objOption.text = data[i]["startTime"];
            objOption.value = i;
            objSelectet.options.add(objOption);
        }
        let successrate = [];
        let failrate = [];
        let errorrate = [];
        for (var j = 0 ; j < data.length; j++){
            if ( data[j]["success"] === undefined) {
                data[j]["success"] = 0
            }
            if ( data[j]["fail"] === undefined) {
                data[j]["fail"] = 0
            }
            if ( data[j]["error"] === undefined) {
                data[j]["error"] = 0
            }
            console.log(data[j]["success"], data[j]["fail"],data[j]["error"])
            let totle = Number(data[j]["success"])+Number(data[j]["fail"])+Number(data[j]["error"]);
            console.log(totle)
            successrate.push((Number(data[j]["success"])/totle)*100);
            failrate.push((Number(data[j]["fail"])/totle)*100);
            errorrate.push((Number(data[j]["error"])/totle)*100)
        }
        console.log(successrate, failrate, errorrate)
        let myChartline = echarts.init(document.getElementById('chartline'));
        // 绘制图表
        let optionline = {
            title: {
                text: '近十次测试结果',
                left: 'center',
                top: 20,
                textStyle: {
                    color: '#ccc'
                }
            },
            tooltip: {
                trigger: 'axis',
                axisPointer: {
                    type: 'cross',
                    crossStyle: {
                        color: '#999'
                    }
                }
            },
            toolbox: {
                feature: {
                    dataView: {show: true, readOnly: false},
                    magicType: {show: true, type: ['line', 'bar']},
                    restore: {show: true},
                    saveAsImage: {show: true}
                }
            },
            legend: {
                data:['通过率','失败率','错误率']
            },
            xAxis: [
                {
                    type: 'category',
                    data: ['1','2','3','4','5','6','7','8','9','10'],
                    axisPointer: {
                        type: 'shadow'
                    }
                }
            ],
            yAxis: [
                {
                    type: 'value',
                    name: '百分比',
                    min: 0,
                    max: 100,
                    interval: 20,
                    axisLabel: {
                        formatter: '{value} %'
                    }
                },
            ],
            series: [
                {
                    name:'失败率',
                    type:'bar',
                    data:failrate
                    // data: [20, 10, 15, 2, 8, 56, 45, 10, 48, 1]
                },
                {
                    name:'错误率',
                    type:'line',
                    // yAxisIndex: 1,
                    data:errorrate
                    // data: [1, 5, 7, 2, 5, 6, 1, 0, 4, 7]
                },
                {
                    name:'通过率',
                    type:'bar',
                    data: successrate
                    // data: [79, 85, 78, 96, 87, 48, 54, 90, 52, 8]
                },
            ]
        };
        myChartline.setOption(optionline);
    }
    function changeResult(obj) {
        var objSelectet = document.getElementById("testTime");
        console.log(data[objSelectet.value])
        document.getElementById("title").innerText=data[objSelectet.value]["title"];
        document.getElementsByClassName("attribute")[0].innerHTML='<strong>开始时间：</strong>'+data[objSelectet.value]["startTime"];
        document.getElementsByClassName("attribute")[1].innerHTML='<strong>运行时长：</strong>'+data[objSelectet.value]["duration"];
        document.getElementsByClassName("attribute")[2].innerHTML='<strong>状态：</strong>'+data[objSelectet.value]["status"];
         document.getElementById("btn-group").innerHTML=data[objSelectet.value]["data"];
         this.changChart(data[objSelectet.value]["success"],data[objSelectet.value]["fail"],data[objSelectet.value]["error"])
    }
    function changChart(success, fail, error) {
        var myChart = echarts.init(document.getElementById('chart'));
        // 指定图表的配置项和数据
        var option = {
            title : {
                text: '测试执行情况',
                x:'center'
            },
            tooltip : {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            color: ['#95b75d', 'grey', '#b64645'],
            legend: {
                orient: 'vertical',
                left: 'left',
                data: ['通过','失败','错误']
            },
            series : [
                {
                    name: '测试执行情况',
                    type: 'pie',
                    radius : '60%',
                    center: ['50%', '60%'],
                    data:[
                        {value:success, name:'通过'},
                        {value:fail, name:'失败'},
                        {value:error, name:'错误'}
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };
        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
     }
    /* obsoleted by detail in <div>
    function showOutput(id, name) {
        var w = window.open("", //url
                        name,
                        "resizable,scrollbars,status,width=800,height=450");
        d = w.document;
        d.write("<pre>");
        d.write(html_escape(output_list[id]));
        d.write("\n");
        d.write("<a href='javascript:window.close()'>close</a>\n");
        d.write("</pre>\n");
        d.close();
    }
    */
    --></script>

    <div id="div_base">
        
    <div class='page-header'>
        <h1 id="title">Unit Test Report</h1>
    <p class='attribute'><strong>开始时间:</strong> 2020-11-06 16:12:39</p>
<p class='attribute'><strong>运行时长:</strong> 0:00:02.360448</p>
<p class='attribute'><strong>状态:</strong> 通过 25</p>

    </div>
    <!--<div style="float: left;width:50%;"><p class='description'>测试登录模块</p></div>-->
    <div id="chartline" style="width:50%;height:400px;float:left;"></div>
    <div id="chart" style="width:50%;height:400px;float:left;"></div>
    <select name = "testTime" id = "testTime" style="height: 30px;height: 30px; width:250px;margin: 5px;margin-left: 0px" onchange="changeResult(this)">
        <!--<option value = "">请选择</option>-->
    </select>
    <p style="color:#999">*注<strong>: </strong>只保留最近十次的测试记录</p>

        
    <div id="btn-group">
    <div class="btn-group btn-group-sm">
        <a class="btn btn-primary" onclick='javascript:showCase(0)'>概要{ 100.00% }</a>
        <a class="btn btn-warning" onclick='javascript:showCase(4)'>错误{ 0 }</a>
        <a class="btn btn-danger" onclick='javascript:showCase(1)'>失败{ 0 }</a>
        <a class="btn btn-success" onclick='javascript:showCase(2)'>通过{ 25 }</a>
        <a class="btn btn-info" onclick='javascript:showCase(3)'>所有{ 25 }</a>
    </div>
    <p></p>
    <table id='result_table' class="table table-bordered">
        <colgroup>
            <col align='left' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
            <col align='right' />
        </colgroup>
        <tr id='header_row'>
            <td>测试套件/测试用例</td>
            <td>总数</td>
            <td>通过</td>
            <td>失败</td>
            <td>错误</td>
            <th>视图</th>
            <th>错误截图</th>
        </tr>
        
    <tr class='passClass'>
        <td>test_department.TestDepartment</td>
        <td>6</td>
        <td>6</td>
        <td>0</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c1',6)">详情</a></td>
        <td>&nbsp;</td>
    </tr>

<tr id='pt1.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test01_login</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

<tr id='pt1.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test02_get_department_structure</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

<tr id='pt1.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test03_add_department</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

<tr id='pt1.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test04_get_department</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

<tr id='pt1.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test05_modify_department</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

<tr id='pt1.6' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test06_del_department</div></td>
    <td colspan='5' align='center'>通过</td>
    <td>无截图</td>
</tr>

    <tr class='passClass'>
        <td>test_employee.TestEmployee</td>
        <td>6</td>
        <td>6</td>
        <td>0</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c2',6)">详情</a></td>
        <td>&nbsp;</td>
    </tr>

<tr id='pt2.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test01_emp_login</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.1')" >
        通过</a>

    <div id='div_pt2.1' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.1').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.1: {'Authorization': 'Bearer 0ef0a84c-d31d-4839-85ad-7422bedb1767'}
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt2.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test02_get_emp_list_0</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.2')" >
        通过</a>

    <div id='div_pt2.2' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.2').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.2: 查询员工列表: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'total': 634, 'rows': [{'id': '1063705989926227968', 'mobile': '13800000002', 'username': 'aj123', 'password': 'c8b7722b1139bb9b346409e503302e82', 'enableState': 1, 'createTime': '2018-11-17T08:10:45.000+0000', 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066241293639880704', 'timeOfEntry': '2018-11-02T00:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '9002', 'formOfManagement': None, 'workingCity': None, 'correctionTime': '2018-11-29T16:00:00.000+0000', 'inServiceStatus': None, 'departmentName': 'test1', 'level': 'coAdmin', 'staffPhoto': 'http://pkbivgfrm.bkt.clouddn.com/1063705989926227968?t=1545788007343'}, {'id': '1066370498633486336', 'mobile': '13800000003', 'username': 'zbz', 'password': '14af10ffa3798486632a79cbbf469376', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1063678149528784896', 'timeOfEntry': '2018-11-04T00:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '111', 'formOfManagement': None, 'workingCity': None, 'correctionTime': '2018-11-19T16:00:00.000+0000', 'inServiceStatus': None, 'departmentName': '测试部', 'level': 'user', 'staffPhoto': 'http://pkbivgfrm.bkt.clouddn.com/1066370498633486336?t=1545812322518'}, {'id': '1071632760222810112', 'mobile': '13800000004', 'username': 'll', 'password': '456134d471010ecba14c6f89cac349ff', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1063678149528784896', 'timeOfEntry': '2018-12-02T00:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '1111', 'formOfManagement': None, 'workingCity': None, 'correctionTime': '2018-12-30T16:00:00.000+0000', 'inServiceStatus': None, 'departmentName': '测试部', 'level': 'user', 'staffPhoto': None}, {'id': '1074238801330704384', 'mobile': '13400000001', 'username': 'a01', 'password': '80069fc2872ce3cf269053f4a84b2f0d', 'enableState': 1, 'createTime': '2018-12-16T09:44:22.000+0000', 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2017-12-31T16:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '1001', 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': 1, 'departmentName': '开发部', 'level': None, 'staffPhoto': None}, {'id': '1074238801402007552', 'mobile': '13400000002', 'username': 'a02', 'password': 'a4f6437f96466ff2ad41dc8c46317e7f', 'enableState': 1, 'createTime': '2018-12-16T09:44:23.000+0000', 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2017-12-31T16:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '1002', 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': 1, 'departmentName': '开发部', 'level': None, 'staffPhoto': None}, {'id': '1075383133106425856', 'mobile': '13500000001', 'username': 'test001', 'password': 'aa824c0d32d9725482e58a7503a20521', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2017-12-31T16:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '2001', 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': 1, 'departmentName': '开发部', 'level': 'user', 'staffPhoto': None}, {'id': '1075383135371350016', 'mobile': '13500000002', 'username': 'test002', 'password': 'becc21ed8df7975fc845c6c70f46c2dd', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2017-12-31T16:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '2002', 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': 1, 'departmentName': '开发部', 'level': 'user', 'staffPhoto': None}, {'id': '1075383135459430400', 'mobile': '13500000003', 'username': 'test003', 'password': '7321b9c9cfaa938abc7408147fc29441', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2017-12-31T16:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '2003', 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': 1, 'departmentName': '开发部', 'level': 'user', 'staffPhoto': None}, {'id': '1321845526831927296', 'mobile': '15810001000', 'username': 'tim', 'password': 'd3fdb3696d8105f550fd908bd27fc542', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': None, 'timeOfEntry': None, 'formOfEmployment': None, 'workNumber': None, 'formOfManagement': None, 'workingCity': None, 'correctionTime': None, 'inServiceStatus': None, 'departmentName': None, 'level': 'user', 'staffPhoto': None}, {'id': '1322153880653500416', 'mobile': '13012345643', 'username': '哈吉动手能力强', 'password': '0734f7df6f18b103502fd95440527d2e', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '1066240656856453120', 'timeOfEntry': '2019-07-01T00:00:00.000+0000', 'formOfEmployment': 1, 'workNumber': '1322131', 'formOfManagement': None, 'workingCity': None, 'correctionTime': '2019-11-30T00:00:00.000+0000', 'inServiceStatus': None, 'departmentName': '开发部', 'level': 'user', 'staffPhoto': None}]}}
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt2.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test03_add_emp_0</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.3')" >
        通过</a>

    <div id='div_pt2.3' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.3').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.3: 添加员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'id': '1324625834295791616'}}
员工ID： 1324625834295791616
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt2.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test04_get_emp_0</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.4')" >
        通过</a>

    <div id='div_pt2.4' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.4').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.4: 查询员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'id': '1324625834295791616', 'mobile': '18343274389', 'username': '尼古拉斯特斯拉', 'password': '7d65a91b62d20ec1a88da057b5f87c13', 'enableState': 1, 'createTime': None, 'companyId': '1', 'companyName': '传智播客', 'departmentId': '9993', 'timeOfEntry': '2020-01-01T00:00:00.000+0000', 'formOfEmployment': None, 'workNumber': '001', 'formOfManagement': None, 'workingCity': None, 'correctionTime': '2020-01-01T00:00:00.000+0000', 'inServiceStatus': None, 'departmentName': '深圳18期测试部', 'roleIds': [], 'staffPhoto': None}}
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt2.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test05_modify_emp_0</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.5')" >
        通过</a>

    <div id='div_pt2.5' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.5').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.5: 修改员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': {'id': '1324625834295791616'}}
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt2.6' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test06_del_emp_0</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt2.6')" >
        通过</a>

    <div id='div_pt2.6' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt2.6').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt2.6: 删除员工: {'success': True, 'code': 10000, 'message': '操作成功！', 'data': None}
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

    <tr class='passClass'>
        <td>test_login.TestLogin</td>
        <td>13</td>
        <td>13</td>
        <td>0</td>
        <td>0</td>
        <td><a href="javascript:showClassDetail('c3',13)">详情</a></td>
        <td>&nbsp;</td>
    </tr>

<tr id='pt3.1' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_00__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.1')" >
        通过</a>

    <div id='div_pt3.1' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.1').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.1: 登录成功 {'mobile': '13800000002', 'password': '123456'} 200 True 10000 操作成功！
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.2' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_01__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.2')" >
        通过</a>

    <div id='div_pt3.2' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.2').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.2: 手机号码为空 {'mobile': '', 'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.3' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_02__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.3')" >
        通过</a>

    <div id='div_pt3.3' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.3').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.3: 手机号码未注册 {'mobile': '14000000002', 'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.4' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_03__null</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.4')" >
        通过</a>

    <div id='div_pt3.4' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.4').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.4: 手机号码为null {'mobile': None, 'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.5' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_04__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.5')" >
        通过</a>

    <div id='div_pt3.5' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.5').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.5: 手机号码有字符、数字、特殊字符 {'mobile': 'abc123!@#$%', 'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.6' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_05__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.6')" >
        通过</a>

    <div id='div_pt3.6' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.6').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.6: 密码为空 {'mobile': '13800000002', 'password': ''} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.7' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_06__null</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.7')" >
        通过</a>

    <div id='div_pt3.7' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.7').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.7: 密码为null {'mobile': '13800000002', 'password': None} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.8' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_07__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.8')" >
        通过</a>

    <div id='div_pt3.8' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.8').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.8: 密码错误 {'mobile': '13800000002', 'password': '1234567'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.9' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_08__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.9')" >
        通过</a>

    <div id='div_pt3.9' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.9').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.9: 多参 {'mobile': '13800000002', 'password': '123456', 'more': '111'} 200 True 10000 操作成功！
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.10' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_09__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.10')" >
        通过</a>

    <div id='div_pt3.10' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.10').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.10: 少参 {'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.11' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_10__null</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.11')" >
        通过</a>

    <div id='div_pt3.11' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.11').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.11: 无参null None 200 False 99999 抱歉，系统繁忙，请稍后重试！
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.12' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_11__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.12')" >
        通过</a>

    <div id='div_pt3.12' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.12').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.12: 错误参数 {'mobil': '13800000002', 'password': '123456'} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

<tr id='pt3.13' class='hiddenRow'>
    <td class='passCase'><div class='testcase'>test_login_success_12__</div></td>
    <td colspan='5' align='center'>

    <!--css div popup start-->
    <a class="popup_link" onfocus='this.blur();' href="javascript:showTestDetail('div_pt3.13')" >
        通过</a>

    <div id='div_pt3.13' class="popup_window">
        <div style='text-align: right; color:red;cursor:pointer'>
            <a onfocus='this.blur();' onclick="document.getElementById('div_pt3.13').style.display = 'none' " >
               [x]</a>
        </div>
        <pre>pt3.13: 无参{} {} 200 False 20001 用户名或密码错误
</pre>
    </div>
    <!--css div popup end-->

    </td>
    <td>无截图</td>
</tr>

        <tr id='total_row'>
            <td>总计</td>
            <td>25</td>
            <td>25</td>
            <td>0</td>
            <td>0</td>
            <td>&nbsp;</td>
            <th>&nbsp;</th>
        </tr>
    </table>
    </div>

        <div id='ending'>&nbsp;</div>
        
    <script type="text/javascript">
        // 基于准备好的dom，初始化echarts实例
        var myChart = echarts.init(document.getElementById('chart'));

        // 指定图表的配置项和数据
        var option = {
            title : {
                text: '测试执行情况',
                x:'center'
            },
            tooltip : {
                trigger: 'item',
                formatter: "{a} <br/>{b} : {c} ({d}%)"
            },
            color: ['#95b75d', 'grey', '#b64645'],
            legend: {
                orient: 'vertical',
                left: 'left',
                data: ['通过','失败','错误']
            },
            series : [
                {
                    name: '测试执行情况',
                    type: 'pie',
                    radius : '60%',
                    center: ['50%', '60%'],
                    data:[
                        {value:25, name:'通过'},
                        {value:0, name:'失败'},
                        {value:0, name:'错误'}
                    ],
                    itemStyle: {
                        emphasis: {
                            shadowBlur: 10,
                            shadowOffsetX: 0,
                            shadowColor: 'rgba(0, 0, 0, 0.5)'
                        }
                    }
                }
            ]
        };

        // 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
    </script>
    
    </div>
</body>
</html>
